Communications security is of increasing concern. Often, computers communicate over a network by passing encrypted data to one another. The encryption of data allows computer systems to verify the source of data, and to protect data from eavesdropping while that data is in transit. Encryption is typically performed using encryption keys or encryption key pairs in combination with an encryption algorithm. Data encrypted using an encryption algorithm in connection with a unique key prevents an eavesdropper from easily accessing the encrypted data. In addition, such encryption provides a way for a receiving computer to validate the source of the encrypted data, because presumably only authorized computers possess the key necessary to encrypt data in such a way that it can be decrypted by the receiving computer. Accordingly, data encryption can be used in connection with providing security to a communications network or to applications associated with such a network.
The use of mobile computers, such as laptops and personal digital assistants (PDAs) is becoming increasingly widespread. Such devices are useful in providing users with a connection to network services even when the user is away from the user's full-featured desktop computer. Such devices can also be used to provide telephony services even when the user is away from the user's desk top telephone. For example, IP telephony allows computers, to function as voice communication devices using computer networks as a transmission medium.
However, the use of data encryption in connection with mobile devices can be problematic. For example, such devices may not feature the resources found in a typical desktop computer. Therefore, the ability of such devices to run certain security algorithms is limited. In addition, the easy portability of such devices makes those devices, and any programming code stored in them, vulnerable to theft. Additionally, the distribution of security algorithms to a number of computer devices increases the risk that the code used to implement those algorithms will be circumvented. In addition, where alterations to the security algorithm are necessary (for example, when the original algorithm has been hacked or to update or increase the security of the algorithm), it can be extremely difficult to provide the modified algorithm to all of the devices that need access to the secured features of a network.